import logging
import os.path
import time

from ui_automation_testing.utils.config import MyConfig, LOG_PATH


class Logger:
    def __init__(self, logger=None):
        """
        指定保存日志的路径，日志级别，以及调用文件
        将日志存入到指定的文件中
        """
        cf = MyConfig()
        # 日志输出格式
        self.format = cf.get_value('log.conf', 'basiclog', 'format')
        # 创建一个logger
        self.logger = logging.getLogger(logger)
        self.logger.setLevel(logging.DEBUG)

        cur_date = time.strftime('%Y-%m-%d', time.localtime(time.time()))
        file_name = cur_date + '.log'
        log_file = os.path.join(LOG_PATH, file_name)
        # 设置一个文件处理器
        fh = logging.FileHandler(log_file, encoding="utf-8", mode="a")  # 加上 encoding="utf-8",mode="a" 解决中文乱码问题
        fh.setLevel(logging.INFO)
        # 定义一个输出到控制台的handler
        ch = logging.StreamHandler()
        ch.setLevel(logging.INFO)
        # 定义handler的输出格式
        formatter = logging.Formatter(self.format)
        fh.setFormatter(formatter)
        ch.setFormatter(formatter)

        # 给logger添加到handler
        self.logger.addHandler(fh)
        self.logger.addHandler(ch)

    def get_log(self):
        return self.logger


